A multi-core microprocessor is one that combines two or more independent processors into a single package, often a single integrated circuit (IC). For example, a dual-core device contains two independent microprocessors and a quad-core device contains four microprocessors. A multi-core microprocessor implements multiprocessing in a single physical package. Cores in a multi-core device may share a single coherent cache at the highest on-device cache level or may have separate caches. The processors typically also share the same interconnect to the rest of the system. Each “core” independently implements optimizations such as superscalar execution, pipelining, and multi-threading. A system with N cores is effective when it is presented with N or more threads concurrently.
Multi-core machines have increasingly become the main stream of personal computers (PCs) and are now being deployed in mobile computing as well. Dual-core desktops and laptops are widely used. Quad-core processors are expected to become the next generation main stream computing devices. Heavy processing tasks like video encoding can take full advantage of the multi-core processors to greatly improve performance and help achieve the purpose of broad usage for real-time communication and entertainment applications.